This invention relates to the field of workflow process management and more particularly to a system and method for performing flexible workflow process compensation in a distributed workflow management system.
Workflow process re-engineering, that is, the fundamental rethinking and re-implementation of workflow processes to achieve never-before-possible levels of quality, cost, throughput and service, is emerging as one of the crucial business strategies of the 1990s. The need for re-engineering is especially significant in an era of workforce downsizing coupled with greater demands for shortened time to market and faster customer response. Moreover, the need is pervasive. Organizations are currently engaging in workflow process re-engineering in many domains, including financial services, telecommunications services, healthcare services, customer order fulfillment, manufacturing procedure automation and electronic commerce.
While workflow process re-engineering provides a business management concept, workflow process management (WFPM) software-or more accurately, middleware-provides the enabling technologies for actually performing workflow process re-engineering. WFPM supports flexible solutions for the management of enterprise-wide operations, including workflow process control, automation and monitoring; resource allocation, authorization and authentication; task initialization and data exchange; and end-to-end communication and security. However, while WFPM offers an overall environment and approach to unifying, automating and measuring workflow processes, it is not limited to supporting workflow process re-engineering and can be used to manage existing nonautomated legacy or work processes.
In general, WFPM systems perform a wide range of tasks. For instance, they can provide a method for defining and managing the flow of a work process or support the definition of resources and their attributes. In addition, they can assign resources to work, determine which steps will be executed next within a work process and when they will be executed and can ensure that the workflow process continues until proper termination. Moreover, they can notify resources about pending work, enforce administrative policies, such as access control and track execution and support user inquiries of status. Finally, they can provide history information in the form of an audit trail for completed workflow processes and collect statistical data for process and resource bottleneck analysis, flow optimization and automatic workload balancing.
Moreover, given the trend towards open systems and standards, a WFPM system must coexist with and take advantage of standards-based commercial products for network communication, legacy application invocation and system monitoring. In particular, these standards include the Object Management Group's Common Object Request Broker Architecture (CORBA), the Open Software Foundation's Distributed Computing Environment (OSF DCE), Hewlett Packard's OpenView and the International Standards Organization Open Systems Interconnection (ISO OSI) X.400 technologies.
In a WFPM system, some applications require the selective use of transactional properties for individual tasks or entire workflow processes to meet consistency or reliability requirements of the business. Compensation is a useful way to ensure these transactional properties for workflow processes. Although compensation is also used in database applications, the compensation of workflow processes is very different from compensation of database transactions for the following reasons. First, a workflow process is structurally more complex than a database transaction. For instance, a workflow process usually accesses multiple independent databases and other resources and systems. Additionally, it is difficult to implement a workflow process as a single transactional unit or as a simple sequence of transactional units. As a result, specifying the compensation scope for a workflow process becomes a non-trivial task.
Second, while a database transaction typically consists of a sequence of database read and write operations, a workflow process can include a set of arbitrarily complex process activities that can be expensive to compensate and re-execute. This complexity makes workflow process compensation difficult to perform in terms of specification and implementation.
Third, the purpose of workflow process compensation is quite different than the purpose of database system compensation. Instead of "undoing" previously completed operations, the idea of compensation in workflow systems is to bring the process execution back to a crucial state where the cause of the failure can be identified. Thus, the purpose is to fix or avoid the problem so that the execution can be resumed and successfully complete.
There is a need for a system and method for flexibly and efficiently compensating a structurally complex workflow process. Such a workflow process could consists of an arbitrarily complex sequence of tasks and involve a plurality of databases, resources and systems.
There is a further need for a system and method for compensating a workflow process which can minimize compensation scope and thereby avoid unnecessary compensation efforts to significantly reduce compensation overhead.
There is still a further need for a system and method for compensating a workflow process which provides flexible specification and implementation strategies.